home *** CD-ROM | disk | FTP | other *** search
- .TH SWEEPSRF
- 6 "IRIT Version 6.0"
- .SH NAME
- SWEEPSRF
-
-
-
- SurfaceType SWEEPSRF( CurveType CrossSection, CurveType Axis,
- CurveType FrameCrv | VectorType FrameVec | ConstType OFF )
-
- Constructs a generalized cylinder surface. This function sweeps a specified
- cross-section CrossSection along the provided Axis.
- By default, when frame specification is OFF, the orientation
- of the cross section is computed using the Axis curve tangent and
- normal. However, unlike the Frenet frame, attempt is made to minimize
- the normal change, as can happen along inflection points in Axis.
- If a VectorType FrameVec is provided as a frame orientation setting,
- it is used to fix the binormal direction to this value. In other words, the
- orientation frame has a fixed binormal. If a CurveType FrameCrv is
- specified as a frame orientation setting, this vector field curve is
- evaluated at each placement of the cross-section to yield the needed binormal.
-
- The resulting sweep is only an approximation of the real sweep. The
- resulting sweep surface will not be exact, in general.
- Refinement of the axis curve at the proper location, where accuracy is
- important, should improve the accuracy of the output. The parametric domains
- of FrameCrv do not have to match the parametric domain of Axis,
- and its parametric domain is automatically made compatible by this function.
-
- Example:
-
- Cross = arc( vector( 0.2, 0.0, 0.0 ),
- vector( 0.2, 0.2, 0.0 ),
- vector( 0.0, 0.2, 0.0 ) ) +
- arc( vector( 0.0, 0.4, 0.0 ),
- vector( 0.1, 0.4, 0.0 ),
- vector( 0.1, 0.5, 0.0 ) ) +
- arc( vector( 0.8, 0.5, 0.0 ),
- vector( 0.8, 0.3, 0.0 ),
- vector( 1.0, 0.3, 0.0 ) ) +
- arc( vector( 1.0, 0.1, 0.0 ),
- vector( 0.9, 0.1, 0.0 ),
- vector( 0.9, 0.0, 0.0 ) ) +
- ctlpt( E2, 0.2, 0.0 );
- Axis = arc( vector( -1.0, 0.0, 0.0 ),
- vector( 0.0, 0.0, 0.1 ),
- vector( 1.0, 0.0, 0.0 ) );
- Axis = crefine( Axis, FALSE, list( 0.25, 0.5, 0.75 ) );
- Srf1 = SWEEPSRF( Cross, Axis, OFF );
- Srf2 = SWEEPSRF( Cross, Axis, vector( 0.0, 1.0, 1.0 ) );
- Srf3 = SWEEPSRF( Cross, Axis,
- cbezier( list( ctlpt( E3, 1.0, 0.0, 0.0 ),
- ctlpt( E3, 0.0, 1.0, 0.0 ),
- ctlpt( E3, -1.0, 0.0, 0.0 ) ) ) );
-
- constructs a rounded rectangle cross-section and sweeps it along an arc,
- while orienting it several ways. The axis curve Axis is manually
- refined to better approximate the requested shape.
-
- See also SWPSCLSRF for sweep with scale.
-